The invention relates generally to image processing and computer graphics. More specifically, the invention relates to up-sampling or up-scaling of an image with embedded edge enhancement.
In the art of imaging, it may be desirable to resize an image. Particularly, it may be desirable to scale up (up-sample) an image to make it larger if the image is too small for its intended use or application. For instance, a digital camera may capture an image in a small size of M pixel rows by N pixel columns. If the image is to be printed, for example, it may be desirable to scale the image to R pixel rows by S pixel columns (R greater than M and/or S greater than N) such that the image covers the print area.
When an image needs to be scaled-up or up-sampled, where the image size is increased, the degradation due to blurring and blocking may be severe. For instance, consider an image that is 100 by 100 pixels in size. If an application for which the image is to be displayed is 200 by 200, then the image needs to be scaled-up by a 2:1 ratio (in both horizontal and vertical directions).
One simple and traditional way of up-sampling is to merely xe2x80x9cduplicatexe2x80x9d pixels as needed. In this case, since a 2:1 up-sampling is desired, each pixel could be repeated three additional times such that the information that occupied one pixel, now occupies four pixels in a two-by-two block. This xe2x80x9cfillxe2x80x9d approach has clear speed advantages over any other method of up-sampling since no computation or image processing is involved. However, this approach guarantees that the resulting scaled image is fuzzier, less sharp and xe2x80x9cblockyxe2x80x9d where individual pixel squares are more readily discernible to the eye. Importantly, the scaled result will have edge features, which are critical to human perception of any image, that are also more blocky and less sharp.
One traditional means of increasing the quality of the scaled-up image has been to use bi-linear interpolation. If a two to one up-sampling is desired then each pixel in the original image should be replaced by a block of four pixels. Consider, for example, the following original image:                     X        A                            X        B                            X        C                    ⋯                          X        D                            X        E                            X        F                            xe2x80x83                                xe2x80x83                    ⋮                      xe2x80x83                            xe2x80x83            
A bi-linear interpolation would average in two different directions to determine the scaled image data set. The scaled image under a between interpolation method may consist of:                     X        A                                                  X            A                    +                      X            B                          2                            X        B                                                  X            B                    +                      X            C                          2                            X        C                    ⋯                                                X            A                    +                      X            D                          2                                                  X            A                    +                      X            B                    +                      X            D                    +                      X            E                          4                    ⋯                      xe2x80x83                            xe2x80x83                            xe2x80x83                                X        D                                                  X            D                    +                      X            E                          2                            X        E                    ⋯                      xe2x80x83                            xe2x80x83            
If the original image is a size Mxc3x97N, then the scaled image would be of size M*N*4 in terms of total number of pixels in the respective data sets. This and other averaging methods may yield better results than filling, but still results in blurred details and rough edges that are not smoothly contoured on the image.
Typical up-sampling techniques are inadequate and lead to poor image quality. Thus, there is a need for a up-sampling technique that better preserves image quality. Further, since lower cost of computation, in terms of complexity, is crucial in devices such as digital cameras, the up-sampling technique should also be compute efficient, so that it can be utilized in such applications.
What is disclosed is a method constructing virtual (Discrete Wavelet Transform) DWT sub-bands from an input image by performing a DWT upon the input image and applying an inverse DWT upon the virtual sub-bands, the result of the inverse DWT representing an up-sampled version of the image.